**** Panel A

use "$path\Intermediary Data\localshock_dataforReg_v2.dta",clear

drop if prix_ht==.
drop  j j3
replace d_dieselr=resid_movav_diesel
xtset id daten
gen d_dieselrott=ln(diesel_rotterdam_euro)-ln(l1.diesel_rotterdam_euro)
drop diesel_rotterdam_euro resid_movav_diesel dprix1 

drop d_dieselr
gen d_dieselr=d_dieselrott

merge m:m id using  "$path\Intermediary Data\base_id_suff_stat_6Y"
keep if _m==3
drop _m

merge m:m id using  "$path\Intermediary Data\base_base_suff_stat_6Y_forinteractkurtfreq"
keep if _m==3
drop _m

******** Panel A, horizon, line 1

capture drop ratio
gen ratio=kurtosis/freq

bysort id: gen first_obs=1 if _n==1

egen mean_kur_temp=mean(kur) if first_obs==1
egen mean_freq_temp=mean(freq) if first_obs==1
egen mean_kur=mean(mean_kur_temp)
egen mean_freq=mean(mean_freq_temp)
drop mean_kur_temp mean_freq_temp first_obs

gen kur_demean=kur/mean_kur
gen freq_demean=freq/mean_freq


drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff4_reg
capture drop coeff5_reg
capture drop coeff6_reg
capture drop coeff_c_reg

capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop se_coeff4_reg
capture drop se_coeff5_reg
capture drop se_coeff6_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff4_reg=.
gen coeff5_reg=.
gen coeff6_reg=.
gen coeff_c_reg=.


gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen se_coeff4_reg=.
gen se_coeff5_reg=.
gen se_coeff6_reg=.
gen df_reg=.
		gen r2=.
gen r2_a=.

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0



***** H=18 ****

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0

foreach i of numlist 1/17 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 18 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht


areg f_prix_ht c.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
c.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l2.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l3.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l4.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l3.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l4.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l3.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l4.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness), absorb(id) vce(cluster daten)

	
		replace r2=e(r2)
replace r2_a=e(r2_a)
	
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr] if num_obs==`i'
replace coeff2_reg=_b[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace coeff3_reg=_b[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace coeff4_reg=_b[c.d_dieselr#c.mean] if num_obs==`i'
replace coeff5_reg=_b[c.d_dieselr#c.sd] if num_obs==`i'
replace coeff6_reg=_b[c.d_dieselr#c.skewness] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'


replace se_coeff1_reg=_se[d_dieselr] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace se_coeff4_reg=_se[c.d_dieselr#c.mean] if num_obs==`i'
replace se_coeff5_reg=_se[c.d_dieselr#c.sd] if num_obs==`i'
replace se_coeff6_reg=_se[c.d_dieselr#c.skewness] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'

preserve
keep coeff1_reg coeff2_reg coeff3_reg coeff4_reg coeff5_reg coeff6_reg r2 r2_a  se_coeff1_reg se_coeff2_reg se_coeff3_reg se_coeff4_reg se_coeff5_reg se_coeff6_reg df_reg num_obs
gen name="`i'"
gen charact="constrained"
keep if num_obs==18
save "$path\Graphs_Tables\TableD2_unconstrainedpanel_line1.dta", replace
restore 
}



***** H=24 ****

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0

foreach i of numlist 1/23 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 24 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht



areg f_prix_ht c.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
c.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l2.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l3.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l4.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l3.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l4.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l3.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l4.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness), absorb(id) vce(cluster daten)

	
		replace r2=e(r2)
replace r2_a=e(r2_a)
	
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr] if num_obs==`i'
replace coeff2_reg=_b[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace coeff3_reg=_b[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace coeff4_reg=_b[c.d_dieselr#c.mean] if num_obs==`i'
replace coeff5_reg=_b[c.d_dieselr#c.sd] if num_obs==`i'
replace coeff6_reg=_b[c.d_dieselr#c.skewness] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'


replace se_coeff1_reg=_se[d_dieselr] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace se_coeff4_reg=_se[c.d_dieselr#c.mean] if num_obs==`i'
replace se_coeff5_reg=_se[c.d_dieselr#c.sd] if num_obs==`i'
replace se_coeff6_reg=_se[c.d_dieselr#c.skewness] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'

preserve
keep coeff1_reg coeff2_reg coeff3_reg coeff4_reg coeff5_reg coeff6_reg r2 r2_a  se_coeff1_reg se_coeff2_reg se_coeff3_reg se_coeff4_reg se_coeff5_reg se_coeff6_reg df_reg num_obs
gen name="`i'"
gen charact="constrained"
keep if num_obs==24
save "$path\Graphs_Tables\TableD2_unconstrainedpanel_line2.dta", replace
restore 
}




******** Panel B, horizon, line 3



use "$path\Intermediary Data\localshock_dataforReg_v2.dta",clear



drop if prix_ht==.
drop  j j3
replace d_dieselr=resid_movav_diesel
xtset id daten
gen d_dieselrott=ln(diesel_rotterdam_euro)-ln(l1.diesel_rotterdam_euro)
drop diesel_rotterdam_euro resid_movav_diesel dprix1 

drop d_dieselr
gen d_dieselr=d_dieselrott

merge m:m id using  "$path\Intermediary Data\base_id_suff_stat_2Y"
keep if _m==3
drop _m

merge m:m id using  "$path\Intermediary Data\base_base_suff_stat_2Y_forinteractkurtfreq"
keep if _m==3
drop _m




capture drop ratio
gen ratio=kurtosis/freq

bysort id: gen first_obs=1 if _n==1

egen mean_kur_temp=mean(kur) if first_obs==1
egen mean_freq_temp=mean(freq) if first_obs==1
egen mean_kur=mean(mean_kur_temp)
egen mean_freq=mean(mean_freq_temp)
drop mean_kur_temp mean_freq_temp first_obs

gen kur_demean=kur/mean_kur
gen freq_demean=freq/mean_freq


drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff4_reg
capture drop coeff5_reg
capture drop coeff6_reg
capture drop coeff_c_reg


capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop se_coeff4_reg
capture drop se_coeff5_reg
capture drop se_coeff6_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff4_reg=.
gen coeff5_reg=.
gen coeff6_reg=.
gen coeff_c_reg=.


gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen se_coeff4_reg=.
gen se_coeff5_reg=.
gen se_coeff6_reg=.
gen df_reg=.
		gen r2=.
gen r2_a=.

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0


***** H=30 ****

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0

foreach i of numlist 1/29 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 30 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht


areg f_prix_ht c.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
c.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l2.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l3.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l4.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l3.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l4.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l3.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l4.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness), absorb(id) vce(cluster daten)

	
		replace r2=e(r2)
replace r2_a=e(r2_a)
	
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr] if num_obs==`i'
replace coeff2_reg=_b[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace coeff3_reg=_b[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace coeff4_reg=_b[c.d_dieselr#c.mean] if num_obs==`i'
replace coeff5_reg=_b[c.d_dieselr#c.sd] if num_obs==`i'
replace coeff6_reg=_b[c.d_dieselr#c.skewness] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'


replace se_coeff1_reg=_se[d_dieselr] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace se_coeff4_reg=_se[c.d_dieselr#c.mean] if num_obs==`i'
replace se_coeff5_reg=_se[c.d_dieselr#c.sd] if num_obs==`i'
replace se_coeff6_reg=_se[c.d_dieselr#c.skewness] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'


preserve
keep coeff1_reg coeff2_reg coeff3_reg coeff4_reg coeff5_reg coeff6_reg r2 r2_a  se_coeff1_reg se_coeff2_reg se_coeff3_reg se_coeff4_reg se_coeff5_reg se_coeff6_reg df_reg num_obs
gen name="`i'"
gen charact="constrained"
keep if num_obs==30
save "$path\Graphs_Tables\TableD2_unconstrainedpanel_line3.dta", replace
restore 
}







******** Panel B, horizon, line 4



use "$path\Intermediary Data\localshock_dataforReg_v2.dta",clear

drop if prix_ht==.
drop  j j3
replace d_dieselr=resid_movav_diesel
xtset id daten
gen d_dieselrott=ln(diesel_rotterdam_euro)-ln(l1.diesel_rotterdam_euro)
drop diesel_rotterdam_euro resid_movav_diesel dprix1 

drop d_dieselr
gen d_dieselr=d_dieselrott

merge m:m id using  "$path\Intermediary Data\base_id_suff_stat_4Y"
keep if _m==3
drop _m

merge m:m id using  "$path\Intermediary Data\base_base_suff_stat_4Y_forinteractkurtfreq"
keep if _m==3
drop _m





capture drop ratio
gen ratio=kurtosis/freq

bysort id: gen first_obs=1 if _n==1

egen mean_kur_temp=mean(kur) if first_obs==1
egen mean_freq_temp=mean(freq) if first_obs==1
egen mean_kur=mean(mean_kur_temp)
egen mean_freq=mean(mean_freq_temp)
drop mean_kur_temp mean_freq_temp first_obs

gen kur_demean=kur/mean_kur
gen freq_demean=freq/mean_freq


drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff4_reg
capture drop coeff5_reg
capture drop coeff6_reg
capture drop coeff_c_reg


capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop se_coeff4_reg
capture drop se_coeff5_reg
capture drop se_coeff6_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff4_reg=.
gen coeff5_reg=.
gen coeff6_reg=.
gen coeff_c_reg=.


gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen se_coeff4_reg=.
gen se_coeff5_reg=.
gen se_coeff6_reg=.
gen df_reg=.
		gen r2=.
gen r2_a=.

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0




***** H=30 ****

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0

foreach i of numlist 1/29 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 30 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht

/* On divise par le pass-through de long terme (h=30) de la régression baseline sur les stations à 6 ans */


areg f_prix_ht c.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
c.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l2.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l3.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l4.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l3.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l4.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l3.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l4.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness), absorb(id) vce(cluster daten)

	
		replace r2=e(r2)
replace r2_a=e(r2_a)
	
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr] if num_obs==`i'
replace coeff2_reg=_b[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace coeff3_reg=_b[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace coeff4_reg=_b[c.d_dieselr#c.mean] if num_obs==`i'
replace coeff5_reg=_b[c.d_dieselr#c.sd] if num_obs==`i'
replace coeff6_reg=_b[c.d_dieselr#c.skewness] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'


replace se_coeff1_reg=_se[d_dieselr] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace se_coeff4_reg=_se[c.d_dieselr#c.mean] if num_obs==`i'
replace se_coeff5_reg=_se[c.d_dieselr#c.sd] if num_obs==`i'
replace se_coeff6_reg=_se[c.d_dieselr#c.skewness] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'

preserve
keep coeff1_reg coeff2_reg coeff3_reg coeff4_reg coeff5_reg coeff6_reg r2 r2_a  se_coeff1_reg se_coeff2_reg se_coeff3_reg se_coeff4_reg se_coeff5_reg se_coeff6_reg df_reg num_obs
gen name="`i'"
gen charact="constrained"
keep if num_obs==30
save "$path\Graphs_Tables\TableD2_unconstrainedpanel_line4.dta", replace
restore 
}





******** Panel B, horizon, line 5



use "$path\Intermediary Data\localshock_dataforReg_v2.dta",clear



drop if prix_ht==.
drop  j j3
replace d_dieselr=resid_movav_diesel
xtset id daten
gen d_dieselrott=ln(diesel_rotterdam_euro)-ln(l1.diesel_rotterdam_euro)
drop diesel_rotterdam_euro resid_movav_diesel dprix1 

drop d_dieselr
gen d_dieselr=d_dieselrott

merge m:m id using  "$path\Intermediary Data\base_id_suff_stat_8Y"
keep if _m==3
drop _m

merge m:m id using  "$path\Intermediary Data\base_base_suff_stat_8Y_forinteractkurtfreq"
keep if _m==3
drop _m




capture drop ratio
gen ratio=kurtosis/freq

bysort id: gen first_obs=1 if _n==1

egen mean_kur_temp=mean(kur) if first_obs==1
egen mean_freq_temp=mean(freq) if first_obs==1
egen mean_kur=mean(mean_kur_temp)
egen mean_freq=mean(mean_freq_temp)
drop mean_kur_temp mean_freq_temp first_obs

gen kur_demean=kur/mean_kur
gen freq_demean=freq/mean_freq


drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff4_reg
capture drop coeff5_reg
capture drop coeff6_reg
capture drop coeff_c_reg

capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop se_coeff4_reg
capture drop se_coeff5_reg
capture drop se_coeff6_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff4_reg=.
gen coeff5_reg=.
gen coeff6_reg=.
gen coeff_c_reg=.

gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen se_coeff4_reg=.
gen se_coeff5_reg=.
gen se_coeff6_reg=.
gen df_reg=.
		gen r2=.
gen r2_a=.

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0



***** H=30 ****

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0

foreach i of numlist 1/29 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 30 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht



areg f_prix_ht c.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
c.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l2.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l3.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l4.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l3.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l4.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l3.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l4.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness), absorb(id) vce(cluster daten)

	
		replace r2=e(r2)
replace r2_a=e(r2_a)
	
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr] if num_obs==`i'
replace coeff2_reg=_b[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace coeff3_reg=_b[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace coeff4_reg=_b[c.d_dieselr#c.mean] if num_obs==`i'
replace coeff5_reg=_b[c.d_dieselr#c.sd] if num_obs==`i'
replace coeff6_reg=_b[c.d_dieselr#c.skewness] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'


replace se_coeff1_reg=_se[d_dieselr] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace se_coeff4_reg=_se[c.d_dieselr#c.mean] if num_obs==`i'
replace se_coeff5_reg=_se[c.d_dieselr#c.sd] if num_obs==`i'
replace se_coeff6_reg=_se[c.d_dieselr#c.skewness] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'

preserve
keep coeff1_reg coeff2_reg coeff3_reg coeff4_reg coeff5_reg coeff6_reg r2 r2_a  se_coeff1_reg se_coeff2_reg se_coeff3_reg se_coeff4_reg se_coeff5_reg se_coeff6_reg df_reg num_obs
gen name="`i'"
gen charact="constrained"
keep if num_obs==30
save "$path\Graphs_Tables\TableD2_unconstrainedpanel_line5.dta", replace
restore 
}




***** PANEL C: 

use "$path\Intermediary Data\localshock_dataforReg_v2.dta",clear


drop if prix_ht==.
drop  j j3
replace d_dieselr=resid_movav_diesel
xtset id daten
gen d_dieselrott=ln(diesel_rotterdam_euro)-ln(l1.diesel_rotterdam_euro)
drop diesel_rotterdam_euro resid_movav_diesel dprix1 

drop d_dieselr
gen d_dieselr=d_dieselrott

merge m:m id using  "$path\Intermediary Data\base_id_suff_stat_6Y"
keep if _m==3
drop _m

merge m:m id using  "$path\Intermediary Data\base_base_suff_stat_6Y_forinteractkurtfreq"
keep if _m==3
drop _m

******** Line 6



capture drop ratio
gen ratio=kurtosis/freq

bysort id: gen first_obs=1 if _n==1

egen mean_kur_temp=mean(kur) if first_obs==1
egen mean_freq_temp=mean(freq) if first_obs==1
egen mean_kur=mean(mean_kur_temp)
egen mean_freq=mean(mean_freq_temp)
drop mean_kur_temp mean_freq_temp first_obs

gen kur_demean=kur/mean_kur
gen freq_demean=freq/mean_freq


drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff4_reg
capture drop coeff5_reg
capture drop coeff6_reg
capture drop coeff_c_reg

capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop se_coeff4_reg
capture drop se_coeff5_reg
capture drop se_coeff6_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff4_reg=.
gen coeff5_reg=.
gen coeff6_reg=.
gen coeff_c_reg=.

gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen se_coeff4_reg=.
gen se_coeff5_reg=.
gen se_coeff6_reg=.
gen df_reg=.
		gen r2=.
gen r2_a=.

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0

foreach i of numlist 1/17 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_18
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 18 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_18
replace f_prix_ht=f_prix_ht_temp+f_prix_ht


areg f_prix_ht c.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
c.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l2.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l3.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l4.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l3.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l4.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l3.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l4.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness), absorb(id) vce(cluster daten)

	
		replace r2=e(r2)
replace r2_a=e(r2_a)
	
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr] if num_obs==`i'
replace coeff2_reg=_b[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace coeff3_reg=_b[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace coeff4_reg=_b[c.d_dieselr#c.mean] if num_obs==`i'
replace coeff5_reg=_b[c.d_dieselr#c.sd] if num_obs==`i'
replace coeff6_reg=_b[c.d_dieselr#c.skewness] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'


replace se_coeff1_reg=_se[d_dieselr] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace se_coeff4_reg=_se[c.d_dieselr#c.mean] if num_obs==`i'
replace se_coeff5_reg=_se[c.d_dieselr#c.sd] if num_obs==`i'
replace se_coeff6_reg=_se[c.d_dieselr#c.skewness] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'

preserve
keep coeff1_reg coeff2_reg coeff3_reg coeff4_reg coeff5_reg coeff6_reg r2 r2_a  se_coeff1_reg se_coeff2_reg se_coeff3_reg se_coeff4_reg se_coeff5_reg se_coeff6_reg df_reg num_obs
gen name="`i'"
gen charact="constrained"
keep if num_obs==18
save "$path\Graphs_Tables\TableD2_unconstrainedpanel_line6.dta", replace
restore 
}



******** Line 7



capture drop first_obs
bysort id: gen first_obs=1 if _n==1

drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff4_reg
capture drop coeff5_reg
capture drop coeff6_reg
capture drop coeff_c_reg

capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop se_coeff4_reg
capture drop se_coeff5_reg
capture drop se_coeff6_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff4_reg=.
gen coeff5_reg=.
gen coeff6_reg=.
gen coeff_c_reg=.

gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen se_coeff4_reg=.
gen se_coeff5_reg=.
gen se_coeff6_reg=.
gen df_reg=.
		gen r2=.
gen r2_a=.

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0


foreach i of numlist 1/23 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_24
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 24 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_24
replace f_prix_ht=f_prix_ht_temp+f_prix_ht


areg f_prix_ht c.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
c.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l2.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l3.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l4.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l3.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l4.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l3.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l4.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness), absorb(id) vce(cluster daten)

	
		replace r2=e(r2)
replace r2_a=e(r2_a)
	
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr] if num_obs==`i'
replace coeff2_reg=_b[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace coeff3_reg=_b[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace coeff4_reg=_b[c.d_dieselr#c.mean] if num_obs==`i'
replace coeff5_reg=_b[c.d_dieselr#c.sd] if num_obs==`i'
replace coeff6_reg=_b[c.d_dieselr#c.skewness] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'


replace se_coeff1_reg=_se[d_dieselr] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace se_coeff4_reg=_se[c.d_dieselr#c.mean] if num_obs==`i'
replace se_coeff5_reg=_se[c.d_dieselr#c.sd] if num_obs==`i'
replace se_coeff6_reg=_se[c.d_dieselr#c.skewness] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'

preserve
keep coeff1_reg coeff2_reg coeff3_reg coeff4_reg coeff5_reg coeff6_reg r2 r2_a  se_coeff1_reg se_coeff2_reg se_coeff3_reg se_coeff4_reg se_coeff5_reg se_coeff6_reg df_reg num_obs
gen name="`i'"
gen charact="constrained"
keep if num_obs==24
save "$path\Graphs_Tables\TableD2_unconstrainedpanel_line7.dta", replace
restore 
}


******** Line 8

capture drop first_obs
bysort id: gen first_obs=1 if _n==1


drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff4_reg
capture drop coeff5_reg
capture drop coeff6_reg
capture drop coeff_c_reg

capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop se_coeff4_reg
capture drop se_coeff5_reg
capture drop se_coeff6_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff4_reg=.
gen coeff5_reg=.
gen coeff6_reg=.
gen coeff_c_reg=.

gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen se_coeff4_reg=.
gen se_coeff5_reg=.
gen se_coeff6_reg=.
gen df_reg=.
		gen r2=.
gen r2_a=.

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0



foreach i of numlist 1/35 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_36
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 36 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect_36
replace f_prix_ht=f_prix_ht_temp+f_prix_ht


areg f_prix_ht c.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
c.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l2.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l3.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l4.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l3.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l4.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l3.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l4.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness), absorb(id) vce(cluster daten)

	
		replace r2=e(r2)
replace r2_a=e(r2_a)
	
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr] if num_obs==`i'
replace coeff2_reg=_b[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace coeff3_reg=_b[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace coeff4_reg=_b[c.d_dieselr#c.mean] if num_obs==`i'
replace coeff5_reg=_b[c.d_dieselr#c.sd] if num_obs==`i'
replace coeff6_reg=_b[c.d_dieselr#c.skewness] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'


replace se_coeff1_reg=_se[d_dieselr] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace se_coeff4_reg=_se[c.d_dieselr#c.mean] if num_obs==`i'
replace se_coeff5_reg=_se[c.d_dieselr#c.sd] if num_obs==`i'
replace se_coeff6_reg=_se[c.d_dieselr#c.skewness] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'


preserve
keep coeff1_reg coeff2_reg coeff3_reg coeff4_reg coeff5_reg coeff6_reg r2 r2_a  se_coeff1_reg se_coeff2_reg se_coeff3_reg se_coeff4_reg se_coeff5_reg se_coeff6_reg df_reg num_obs
gen name="`i'"
gen charact="constrained"
keep if num_obs==36
save "$path\Graphs_Tables\TableD2_unconstrainedpanel_line8.dta", replace
restore 
}





**** Panel D: line 9



**** Constrained, kurtosis corrected 15: line 9


use "$path\Intermediary Data\localshock_dataforReg_v2.dta",clear


drop if prix_ht==.
drop  j j3
replace d_dieselr=resid_movav_diesel
xtset id daten
gen d_dieselrott=ln(diesel_rotterdam_euro)-ln(l1.diesel_rotterdam_euro)
drop diesel_rotterdam_euro resid_movav_diesel dprix1 

drop d_dieselr
gen d_dieselr=d_dieselrott

merge m:m id using  "$path\Intermediary Data\base_id_suff_stat_6Y"
keep if _m==3
drop _m

merge m:m id using  "$path\Intermediary Data\base_base_suff_stat_6Y_forinteractkurtfreq"
keep if _m==3
drop _m

******** RATIO
capture drop ratio
gen ratio=kurtosis/freq

bysort id: gen first_obs=1 if _n==1

egen mean_kur_temp=mean(kur) if first_obs==1
egen mean_freq_temp=mean(freq) if first_obs==1
egen mean_kur=mean(mean_kur_temp)
egen mean_freq=mean(mean_freq_temp)
drop mean_kur_temp mean_freq_temp first_obs

gen kur_demean=kur/mean_kur
gen freq_demean=freq/mean_freq


drop num_obs
gen num_obs=_n-1

capture drop local_shock5 local_shock15 local_shock4 local_shock6 local_shock7 local_shock8
capture drop coeff1_reg
capture drop coeff2_reg
capture drop coeff3_reg
capture drop coeff4_reg
capture drop coeff5_reg
capture drop coeff6_reg
capture drop coeff_c_reg

capture drop se_coeff1_reg
capture drop se_coeff2_reg
capture drop se_coeff3_reg
capture drop se_coeff4_reg
capture drop se_coeff5_reg
capture drop se_coeff6_reg
capture drop df_reg
capture drop r2
capture drop r2_a


gen coeff1_reg=.
gen coeff2_reg=.
gen coeff3_reg=.
gen coeff4_reg=.
gen coeff5_reg=.
gen coeff6_reg=.
gen coeff_c_reg=.

gen se_coeff1_reg=.
gen se_coeff2_reg=.
gen se_coeff3_reg=.
gen se_coeff4_reg=.
gen se_coeff5_reg=.
gen se_coeff6_reg=.
gen df_reg=.
		gen r2=.
gen r2_a=.

capture drop f_prix_ht 
capture drop f_prix_ht_temp
gen f_prix_ht=0

foreach i of numlist 1/29 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'
}


foreach i of numlist 30 {
 
bysort id (daten):  gen f_prix_ht_temp=(log(prix_ht[_n+`i'])-log(prix_ht[_n-1]))/lt_effect
replace f_prix_ht=f_prix_ht_temp+f_prix_ht


areg f_prix_ht c.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
c.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l2.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l3.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
 c.l4.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.d_dieselr##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l3.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
		c.l4.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.local_shock10##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness)  c.l2.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l3.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) ///
	c.l4.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness) c.l5.m_dprix##(c.freq_demean c.kur_demean c.mean c.sd c.skewness), absorb(id) vce(cluster daten)

	
		replace r2=e(r2)
replace r2_a=e(r2_a)
	
matrix test=r(table)
replace coeff1_reg=_b[d_dieselr] if num_obs==`i'
replace coeff2_reg=_b[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace coeff3_reg=_b[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace coeff4_reg=_b[c.d_dieselr#c.mean] if num_obs==`i'
replace coeff5_reg=_b[c.d_dieselr#c.sd] if num_obs==`i'
replace coeff6_reg=_b[c.d_dieselr#c.skewness] if num_obs==`i'
replace coeff_c_reg=_b[_cons] if num_obs==`i'


replace se_coeff1_reg=_se[d_dieselr] if num_obs==`i'
replace se_coeff2_reg=_se[c.d_dieselr#c.freq_demean] if num_obs==`i'
replace se_coeff3_reg=_se[c.d_dieselr#c.kur_demean] if num_obs==`i'
replace se_coeff4_reg=_se[c.d_dieselr#c.mean] if num_obs==`i'
replace se_coeff5_reg=_se[c.d_dieselr#c.sd] if num_obs==`i'
replace se_coeff6_reg=_se[c.d_dieselr#c.skewness] if num_obs==`i'
replace df_reg=e(df_r) if num_obs==`i'
capture drop  f_prix_ht_temp
di "Numéro itération :" `i'


preserve
keep coeff1_reg coeff2_reg coeff3_reg coeff4_reg coeff5_reg coeff6_reg r2 r2_a  se_coeff1_reg se_coeff2_reg se_coeff3_reg se_coeff4_reg se_coeff5_reg se_coeff6_reg df_reg num_obs
gen name="`i'"
gen charact="constrained"
keep if num_obs==30
save "$path\Graphs_Tables\TableD2_unconstrainedpanel_line9.dta", replace
restore
}







****** Format Table D2 ***

**** Constrained ***

clear

use  "$path\Graphs_Tables\TableD2_unconstrainedpanel_line1.dta", replace
append using "$path\Graphs_Tables\TableD2_unconstrainedpanel_line2.dta"
append using "$path\Graphs_Tables\TableD2_unconstrainedpanel_line3.dta"
append using "$path\Graphs_Tables\TableD2_unconstrainedpanel_line4.dta"
append using "$path\Graphs_Tables\TableD2_unconstrainedpanel_line5.dta"
append using "$path\Graphs_Tables\TableD2_unconstrainedpanel_line6.dta"
append using "$path\Graphs_Tables\TableD2_unconstrainedpanel_line7.dta"
append using "$path\Graphs_Tables\TableD2_unconstrainedpanel_line8.dta"
append using "$path\Graphs_Tables\TableD2_unconstrainedpanel_line9.dta"


gen id_col=_n

xpose, clear

drop if _n==1

set obs 18

capture drop col1
capture drop col2
capture drop col3
capture drop col4
capture drop col5
capture drop col6
capture drop col7


*** reprendre ici


gen col1=.
gen col2=.
gen col3=.
gen col4=.
gen col5=.
gen col6=.
gen col7=.


replace col1=v1[1] if _n==1
replace col1=v2[1] if _n==3
replace col1=v3[1] if _n==5
replace col1=v4[1] if _n==7
replace col1=v5[1] if _n==9
replace col1=v6[1] if _n==11
replace col1=v7[1] if _n==13
replace col1=v8[1] if _n==15
replace col1=v9[1] if _n==17

replace col1=v1[7] if _n==2
replace col1=v2[7] if _n==4
replace col1=v3[7] if _n==6
replace col1=v4[7] if _n==8
replace col1=v5[7] if _n==10
replace col1=v6[7] if _n==12
replace col1=v7[7] if _n==14
replace col1=v8[7] if _n==16
replace col1=v9[7] if _n==18


replace col2=v1[2] if _n==1
replace col2=v2[2] if _n==3
replace col2=v3[2] if _n==5
replace col2=v4[2] if _n==7
replace col2=v5[2] if _n==9
replace col2=v6[2] if _n==11
replace col2=v7[2] if _n==13
replace col2=v8[2] if _n==15
replace col2=v9[2] if _n==17

replace col2=v1[8] if _n==2
replace col2=v2[8] if _n==4
replace col2=v3[8] if _n==6
replace col2=v4[8] if _n==8
replace col2=v5[8] if _n==10
replace col2=v6[8] if _n==12
replace col2=v7[8] if _n==14
replace col2=v8[8] if _n==16
replace col2=v9[8] if _n==18



replace col3=v1[3] if _n==1
replace col3=v2[3] if _n==3
replace col3=v3[3] if _n==5
replace col3=v4[3] if _n==7
replace col3=v5[3] if _n==9
replace col3=v6[3] if _n==11
replace col3=v7[3] if _n==13
replace col3=v8[3] if _n==15
replace col3=v9[3] if _n==17

replace col3=v1[9] if _n==2
replace col3=v2[9] if _n==4
replace col3=v3[9] if _n==6
replace col3=v4[9] if _n==8
replace col3=v5[9] if _n==10
replace col3=v6[9] if _n==12
replace col3=v7[9] if _n==14
replace col3=v8[9] if _n==16
replace col3=v9[9] if _n==18

replace col4=v1[4]/100 if _n==1
replace col4=v2[4]/100 if _n==3
replace col4=v3[4]/100 if _n==5
replace col4=v4[4]/100 if _n==7
replace col4=v5[4]/100 if _n==9
replace col4=v6[4]/100 if _n==11
replace col4=v7[4]/100 if _n==13
replace col4=v8[4]/100 if _n==15
replace col4=v9[4]/100 if _n==17

replace col4=v1[10]/100 if _n==2
replace col4=v2[10]/100 if _n==4
replace col4=v3[10]/100 if _n==6
replace col4=v4[10]/100 if _n==8
replace col4=v5[10]/100 if _n==10
replace col4=v6[10]/100 if _n==12
replace col4=v7[10]/100 if _n==14
replace col4=v8[10]/100 if _n==16
replace col4=v9[10]/100 if _n==18



replace col5=v1[5] if _n==1
replace col5=v2[5] if _n==3
replace col5=v3[5] if _n==5
replace col5=v4[5] if _n==7
replace col5=v5[5] if _n==9
replace col5=v6[5] if _n==11
replace col5=v7[5] if _n==13
replace col5=v8[5] if _n==15
replace col5=v9[5] if _n==17

replace col5=v1[11] if _n==2
replace col5=v2[11] if _n==4
replace col5=v3[11] if _n==6
replace col5=v4[11] if _n==8
replace col5=v5[11] if _n==10
replace col5=v6[11] if _n==12
replace col5=v7[11] if _n==14
replace col5=v8[11] if _n==16
replace col5=v9[11] if _n==18

replace col6=v1[6] if _n==1
replace col6=v2[6] if _n==3
replace col6=v3[6] if _n==5
replace col6=v4[6] if _n==7
replace col6=v5[6] if _n==9
replace col6=v6[6] if _n==11
replace col6=v7[6] if _n==13
replace col6=v8[6] if _n==15
replace col6=v9[6] if _n==17

replace col6=v1[12] if _n==2
replace col6=v2[12] if _n==4
replace col6=v3[12] if _n==6
replace col6=v4[12] if _n==8
replace col6=v5[12] if _n==10
replace col6=v6[12] if _n==12
replace col6=v7[12] if _n==14
replace col6=v8[12] if _n==16
replace col6=v9[12] if _n==18


replace col7=v1[14] if _n==1
replace col7=v2[14] if _n==3
replace col7=v3[14] if _n==5
replace col7=v4[14] if _n==7
replace col7=v5[14] if _n==9
replace col7=v6[14] if _n==11
replace col7=v7[14] if _n==13
replace col7=v8[14] if _n==15
replace col7=v9[14] if _n==17

keep col*


gen Panel="Panel A: Horizon" if _n==1
replace Panel="Panel B: Sample of gas stations" if _n==5
replace Panel="Panel C: Horizon of long term pass through" if _n==11
replace Panel="Panel D: Kurtosis corrected for heterogeneity" if _n==17



gen Var="H=18 days" if _n==1
replace Var=" H=24 days" if _n==3
replace Var="> 2 years" if _n==5
replace Var="> 4 years" if _n==7
replace Var="> 8 years" if _n==9
replace Var="19-24 days" if _n==11
replace Var="25-30 days" if _n==13
replace Var="37-40 days" if _n==15

gen tstatcol1=.
gen tstatcol2=.
gen tstatcol3=.
gen tstatcol4=.
gen tstatcol5=.
gen tstatcol6=.
gen tstatcol7=.


foreach i in 1 3 5 7 9 11 13 15 17 {
replace tstatcol1=col1[`i']/col1[`i'+1] if _n==`i'
replace tstatcol2=col2[`i']/col2[`i'+1] if _n==`i'
replace tstatcol3=col3[`i']/col3[`i'+1] if _n==`i' 
replace tstatcol4=col4[`i']/col4[`i'+1] if _n==`i'
replace tstatcol5=col5[`i']/col5[`i'+1] if _n==`i'
replace tstatcol6=col6[`i']/col6[`i'+1] if _n==`i'
}

gen starscol1=""
gen starscol2=""
gen starscol3=""
gen starscol4=""
gen starscol5=""
gen starscol6=""

foreach i in 1 2 3 4 5 6 {
replace starscol`i'="***" if abs(tstatcol`i')>=2.58 & tstatcol`i'!=.
replace starscol`i'="**" if abs(tstatcol`i')<2.58 & abs(tstatcol`i')>=1.96 & tstatcol`i'!=.
replace starscol`i'="*" if abs(tstatcol`i')<1.96 & abs(tstatcol`i')>=1.64 & tstatcol`i'!=.
}

drop tstat*
rename col* coltemp*

foreach i in 1 2 3 4 5 6 {
replace coltemp`i'=round(coltemp`i', 0.001)
tostring coltemp`i', gen(coltempbis`i') force format("%9.3f")  
egen col`i'=concat(coltempbis`i' starscol`i')
}


rename col1 Shock
rename col2 ShockxFreq
rename col3 ShockxKur
rename col4 ShockxMean
rename col5 ShockxSD
rename col6 ShockxSkew
rename coltemp7 R2

keep Panel Var Shock ShockxFreq ShockxKur ShockxMean ShockxSD ShockxSkew R2
order Panel Var Shock ShockxFreq ShockxKur ShockxMean ShockxSD ShockxSkew R2
replace R2=round(R2, 0.001)
format %9.3f  R2
drop if _n>18

save "$path\Graphs_Tables\TableD2_edited.dta", replace



